package guet.dream.question;

import guet.dream.answer.Answer;

import java.util.List;

public interface QuestionDao {
	

	/**
	 * 根据问题id查找出问题.
	 * @param id 问题id
	 * @return 返回相应问题对象
	 */
	Question findById(int id);

	
	/***
	 *  保存一个question 对象.注意对应questions表中的时间值由mysql自动 设置.
	 * @param question Question对象 
	 * @return  返回插入的问题个数.应该返回1 ,其他值则为出错.或异常.
	 */
	int save(Question question);

	/***
	 * 返回相应问题的全部回答. 注意如果某一个问题如果太多回答时可能影响性能.
	 * @param id 问题id
	 * @return  回答数列表. 如果一个问题没有回答,则返回一个为空的列表,而不是空值null请注意.
	 */
	List<Answer> findAnswersByQuestionId(int id);
	
	
	/**
	 *  根据问题查找出,对应问题的回答,并把回答添加到问题的回答Set集合中.
	 * @param question 待查找回答的问题.
	 */
	public void findAnswer(Question question);


	/***
	 * 查询出表中所有的问题对象列表 .
	 * @return
	 */
	List<Question> findAll();


	/**
	 *  更新一个Question对象,注意根据Question id来更新.
	 * @param question
	 * @return 返回受影响的行数.如果返回1 为正确.返回其它则为异常.
	 */
	int update(Question question);

}
